<?php

use think\migration\Migrator;
use think\migration\db\Column;

class CreateOrdersTable extends Migrator
{
    public function change()
    {
        $table = $this->table('orders', ['engine' => 'InnoDB', 'collation' => 'utf8mb4_unicode_ci']);
        $table->addColumn('platform_id', 'integer', ['null' => false, 'comment' => '平台ID'])
              ->addColumn('order_id', 'string', ['limit' => 100, 'null' => false, 'comment' => '订单ID'])
              ->addColumn('parent_order_id', 'string', ['limit' => 100, 'null' => true, 'comment' => '父订单ID'])
              ->addColumn('mall_id', 'string', ['limit' => 100, 'null' => true, 'comment' => '店铺ID'])
              ->addColumn('mall_name', 'string', ['limit' => 200, 'null' => true, 'comment' => '店铺名称'])
              ->addColumn('order_status', 'string', ['limit' => 50, 'null' => true, 'comment' => '订单状态'])
              ->addColumn('main_status', 'string', ['limit' => 50, 'null' => true, 'comment' => '主状态'])
              ->addColumn('order_level', 'integer', ['limit' => 1, 'default' => 0, 'comment' => '订单等级'])
              ->addColumn('trade_type', 'string', ['limit' => 50, 'null' => true, 'comment' => '交易类型'])
              ->addColumn('order_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'default' => 0, 'comment' => '订单金额'])
              ->addColumn('pay_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'default' => 0, 'comment' => '实付金额'])
              ->addColumn('pay_time', 'timestamp', ['null' => true, 'comment' => '支付时间'])
              ->addColumn('pay_type', 'string', ['limit' => 50, 'null' => true, 'comment' => '支付方式'])
              ->addColumn('create_time', 'timestamp', ['null' => true, 'comment' => '创建时间'])
              ->addColumn('update_time', 'timestamp', ['null' => true, 'comment' => '更新时间'])
              ->addColumn('exp_ship_time', 'timestamp', ['null' => true, 'comment' => '预计发货时间'])
              ->addColumn('ship_time', 'timestamp', ['null' => true, 'comment' => '发货时间'])
              ->addColumn('confirm_receipt_time', 'timestamp', ['null' => true, 'comment' => '确认收货时间'])
              ->addColumn('appointment_ship_time', 'timestamp', ['null' => true, 'comment' => '预约发货时间'])
              ->addColumn('logistics_receipt_time', 'timestamp', ['null' => true, 'comment' => '物流签收时间'])
              ->addColumn('promotion_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'default' => 0, 'comment' => '优惠金额'])
              ->addColumn('post_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'default' => 0, 'comment' => '邮费'])
              ->addColumn('platform_cost_amount', 'decimal', ['precision' => 10, 'scale' => 2, 'default' => 0, 'comment' => '平台费用'])
              ->addColumn('commission_price', 'decimal', ['precision' => 10, 'scale' => 2, 'default' => 0, 'comment' => '佣金价格'])
              ->addColumn('pay_price', 'decimal', ['precision' => 10, 'scale' => 2, 'default' => 0, 'comment' => '采购价格'])
              ->addColumn('buyer_words', 'text', ['null' => true, 'comment' => '买家留言'])
              ->addColumn('seller_words', 'text', ['null' => true, 'comment' => '卖家备注'])
              ->addColumn('cancel_reason', 'string', ['limit' => 200, 'null' => true, 'comment' => '取消原因'])
              ->addColumn('refund_status', 'string', ['limit' => 50, 'null' => true, 'comment' => '退款状态'])
              ->addColumn('after_sale_status', 'string', ['limit' => 50, 'null' => true, 'comment' => '售后状态'])
              ->addColumn('after_sale_type', 'string', ['limit' => 50, 'null' => true, 'comment' => '售后类型'])
              ->addColumn('is_comment', 'integer', ['limit' => 1, 'default' => 0, 'comment' => '是否已评价'])
              ->addColumn('pre_sale_type', 'string', ['limit' => 50, 'null' => true, 'comment' => '预售类型'])
              ->addColumn('given_product_type', 'string', ['limit' => 50, 'null' => true, 'comment' => '赠品类型'])
              ->addColumn('first_cid', 'string', ['limit' => 50, 'null' => true, 'comment' => '一级类目ID'])
              ->addColumn('second_cid', 'string', ['limit' => 50, 'null' => true, 'comment' => '二级类目ID'])
              ->addColumn('third_cid', 'string', ['limit' => 50, 'null' => true, 'comment' => '三级类目ID'])
              ->addColumn('fourth_cid', 'string', ['limit' => 50, 'null' => true, 'comment' => '四级类目ID'])
              ->addColumn('seller_remark_stars', 'integer', ['limit' => 1, 'default' => 0, 'comment' => '卖家备注星级'])
              ->addColumn('channel_payment_no', 'string', ['limit' => 100, 'null' => true, 'comment' => '渠道支付单号'])
              ->addColumn('my_remark', 'text', ['null' => true, 'comment' => '本地备注'])
              ->addColumn('sync_time', 'timestamp', ['null' => true, 'comment' => '同步时间'])
              ->addColumn('estimated_profit', 'decimal', ['precision' => 10, 'scale' => 2, 'default' => 0, 'comment' => '预计利润'])
              ->addColumn('actual_profit', 'decimal', ['precision' => 10, 'scale' => 2, 'default' => 0, 'comment' => '实际利润'])
              ->addColumn('created_at', 'timestamp', ['null' => true])
              ->addColumn('updated_at', 'timestamp', ['null' => true])
              ->addIndex(['order_id'], ['unique' => true])
              ->addIndex(['platform_id'])
              ->addIndex(['order_status'])
              ->addIndex(['create_time'])
              ->addIndex(['pay_time'])
              ->create();
    }
} 